pop.handling					package: -					R Documentation


Extrair indivíduos/SNPs e seus respectivos dados de um arquivo independente da formatação da estrutura do arquivo, portanto que seja matriz/dataframe. 


Description:
	
	A função requer dois arquivos de entrada - uma matriz/dataframe e uma lista de identificadores - e a determinação do eixo
	do vetor onde estão os indivíduos/SNPs. A partir da posição do vetor na matriz definida pelo usuário, compara-se e extrai
	apenas os indivíduos/SNPs presentes na lista de comparação, e todos os seus dados associados. Argumentos adicionais incluem
	manipulação de NAs, comparação gráfica entre os dataframes (entrada/saída) e possibilidar de salvar diretamente o novo dataframe.

Usage:

	pop.hanlding(data,axis,list.names, na.omit = F, na.start = 1, graph= F, out= F)


Arguments:

	data: matriz ou data.frame.
	axis: "c:i" ou "l:i", onde "c" determina que o vetor de nomes para o match está em coluna no dataframe, "l" indica que está em linha,
	e "i" deve ser um número inteiro indicando a posição ordinal da coluna/linha onde se encontra o vetor.
	list.names: vetor com os nomes do match de interesse.
	na.omit: omite NAs se o parâmetro for TRUE (padrão = FALSE), podendo ainda o usário definir um número (e.g. zero) que será considerado como NA.
	na.start: determina a partir de que linha/coluna os NAs serão considerados para quantificação/omissão.
	graph: se verdadeiro (TRUE), geram gráficos de comparação entre as IDs e NAs dos data.framas de entrada e de saída (padrão = FALSE).
	out: deve ser um vetor com único valor da classe caractere indicando o path e nome do arquivo a ser salvo (padrão = FALSE).
		


Details:

	A função utiliza apenas as funções básicas do R internamente, e exige obrigatoriamente os dois arquivos de entrada, que são um data.frame
	e a lista de nomes (indivíduos/SNPs), bem como o argumento "axis" informando o eixo no data.frame onde se encontra o vetor de nomes para 
	comparação e extração dos dados. Os demais argumentos são opcionais.

Value:	

	Ao final será gerado um novo data.frame com os dados exclusivos de interesse do usuário, com base em sua lista de indivíduos/SNPs/nomes e 
	toda a informação a eles associadas. Opcionalmente, pode-se salvar diretamente indicando o path na própria função, e visualizar os gráficos
	de comparação entre ambos os data.frames.

Warnings:

	Os argumentos "na.omit", bem como seus associados "na.start" e "graph" foram introduzidos com fins didáticos da disciplina e que podem ser 
	utilizados eficientemente em data.frames convencionais. Arquivos originais em genética populacional, entretanto, costumam ser extensos, e ter
	muitos ou mesmo nenhum NA, sendo um conhecimento prévio da estrutura do arquivo a ser trabalho é importante para o uso de tais argumentos.
	O argumento "out" possibilita ao usuário definir o destino e nome do arquivo, mas não sua formatação. A formatação padrão que foi definida 
	pela função write.table() baseia-se em arquivos .ped .thap e vcf, convencionais em genética de população. Para definir parâmetros, aconselha-se
	salvar o resultado da função em um objeto e então chamar a função write.table() com os parâmetros desejados.
	
	Dependendo do tamanho do arquivo, a função chamada pelo argumento out pode demorar para terminar sua execução.  

Author

	Cainã Max Couto-Silva
	cmcouto.silva@usp.br

References:

	https://www.cog-genomics.org/plink2/formats#ped
	
Examples:

#Faça o download dos arquivos em seu diretório de trabalho

#Importando arquivos para o R
ped.file = read.table("hapmap1.ped", as.is = T) #data.frame com dados de SNP-array de populações japonesas e chineasas;
map.file = read.table("hapmap1.map", as.is = T) #informações sobre os SNPs do arquivo ped (arquivo complementar), apenas por curiosidade;
ped.resized= read.table("hapmap1_resized.ped", as.is = T) #dataframe draticamente reduzido para mostrar ação dos argumentos que manipulam NAs;
japonese= read.table("japonese.txt") #lista dos nomes dos indivíduos japoneses
chinese= read.table("chinese.txt")  #lista dos nomes dos indivíduos chineses

#Utilização da função
ped_japonese= pop.handling(ped.file,"c:1",japonese) #argumentos básicos - extração dos dados da população japonesa;
ped_chinese= pop.handling(data = ped.resized, axis = "c:1", list.names = chinese, na.omit = 0, na.start = 7, graph = T, out = "./arquivoteste.txt") #argumentos completos - extração dos dados da população japonesa, remoção dos NAs (0 representando os NAs neste caso), considerando apenas os zeros/NAs após a sexta coluna (a partir da sétima), comparação gráfico e arquivo-resultado salvo na pasta local com o nome "arquivoteste.txt".
